const apiService = require('../../../utils/yxqzutil');
const app = getApp();
const urlRecords = app.globalData.urlRecords;
const userInfo = wx.getStorageSync("userInfo") || {}; // 获取当前本地存储

Component({
  properties: {
    // 从父页面接收的数据
    exchangeList: {
      type: Array,
      value: []
    }
  },
  data: {
    exchangeData: [], // 存储处理后的数据
  },
  attached() {
    // 加载兑换记录数据
    this.getRecord();
  },
  methods: {
    // 获取兑换记录
    async getRecord() {
      const openid = userInfo.openid;
      console.log('获取兑换记录列表中...');
      try {
        const response = await apiService.wxRequestPromise({
          url: urlRecords,
          method: 'POST',
          header: {
            'content-type': 'application/x-www-form-urlencoded',
            'charset': 'UTF-8'
          },
          data: { openid }
        });
        console.log('响应数据:', response); // 打印响应数据
        if (response.code === 0 && response.data) {
          // 处理数据，对相同商品ID的记录进行计数
          const recordList = response.data;
          const exchangeData = recordList.reduce((acc, record) => {
            const product = record.product;
            const existing = acc.find(item => item.productId === product.productId);
            if (existing) {
              existing.count += 1; // 如果商品ID相同，计数加1
            } else {
              acc.push({
                productId: product.productId, // 商品ID
                productName: product.productName, // 商品名称
                pointsRequired: product.pointsRequired, // 所需积分
                count: 1, // 兑换数量
                exchangeTime: record.exchangeTime // 兑换时间
              });
            }
            return acc;
          }, []);
          console.log('处理后的[exchangeData]兑换数据:', exchangeData); // 打印处理后的兑换数据
          // this.setData({ exchangeData }); // 更新组件数据
          this.setData({ exchangeData }, () => {
            console.log('setData 后的[exchangeData]数据:', this.data.exchangeData);
          });
        }
      } catch (error) {
        console.error('获取兑换记录出错:', error);
        wx.showToast({
          title: '获取兑换记录失败，请稍后重试',
          icon: 'none'
        });
      }
    },
  }
});